WAPNET

Это не хостинг.
Это сеть.

Сайт остаётся на узле, где его создали. Имя само выбирает, кто хранит адрес. Браузеру хватает одной известной точки, чтобы открыть чужой домен. Так федеративную сеть ещё не собирали.

Браузер
Три записи
Сайт
welcome.wap

Узлы собираются в кольцо

Как работает сеть

  1. 1Сайт создаётся на обычном узле. Домен, например welcome.wap, записывается там, где лежит сам сайт.
  2. 2Имя домена указывает на три узла кольца. У них хранится короткая запись: какой домен и на каком адресе.
  3. 3В браузере достаточно одного независимого узла. Он по маршрутам кольца доходит до записи и называет адрес.
  4. 4Браузер открывает сайт уже на узле, где тот размещён. Список сайтов браузер у себя не хранит и в сеть узлом не входит.

Общие зоны

Список зон один и тот же на каждом узле. Отдельного хозяина у зоны нет: имя в ней может завести любой узел.

  • .wap
  • .get
  • .pit
  • .gr
  • .lin
  • .for
  • .ww
  • .open
  • .ref
  • .rt
  • .ph
  • .my
  • .lik
  • .cm
  • .tex
  • .hos
  • .eml

Локальная зона .lock остаётся на своём узле. Другие локальные зоны узел заводит у себя.

Браузер

Адрес независимого узла записывается в настройках, в data/nodes.json. Можно указать один узел или несколько.

Браузер спрашивает их одновременно и берёт первый названный адрес. Чем больше разных узлов вписано, тем выше шанс, что нужное имя окажется у кого-то из них. Если все видят одну и ту же часть сети, лишние адреса почти ничего не добавляют.

Независимый узел

Он не размещает сайты. На его странице видны IP, порт и число известных узлов. Для запуска хватает одного ядра, 1 ГБ памяти, 10 ГБ диска и публичного IPv4. Если записей станет очень много, спокойнее дать 2 ГБ памяти.

Порты: 47000/tcp узел, 47001/udp обнаружение, 5353/udp домены, 4790/tcp страница. Если при запуске порт занят, узел закрывает процесс, который его держит, и садится на тот же номер.

Вопросы

Где лежит сайт?

На узле, где его создали. По сети ходит не сам сайт, а запись: домен и адрес этого узла.

Кто хранит адрес домена?

Три узла, ближайшие к числу, которое получается из имени. Так миллион имён не собирается в один список на каждой машине.

Как узел находит запись, если не знает всю сеть?

Он держит маршруты: на каждое направление кольца до 20 узлов. Запрос идёт к более близким, до шести шагов, пока не дойдёт до тех, у кого лежит имя.

Сайт откроется среди миллиарда имён?

Откроется, если запись дошла до трёх узлов кольца и от независимого узла из настроек до них есть маршрут. Если этой записи в круге нет, браузер пишет, что домен не открылся, и дальше всю сеть не обходит.

Что узлы передают друг другу?

При соединении узел называет себя и свои сайты. Дальше расходятся части списка известных доменов, страницы адресов узлов и ответы на вопрос «кто держит этот домен». Сами страницы сайтов по этому списку не пересылаются.

Сколько узлов и имён помнит один узел?

В опросе сети он держит до 50 000 адресов. Записей о доменах на кольце — до 500 000. Маршрутов гораздо меньше: это пути, а не полный каталог.

Нужно ли браузеру быть узлом?

Нет. Он только спрашивает адрес домена и открывает сайт. В список узлов браузер не записывается.